#列表推导式
#例题：创建一个1-10的列表
# while循环实现
#准备一个空列表
list1=[]
#书写循环，依次追加数字到空列表list1中
i=0
while i<10:
    list1.append(i)
    i+=1
print(list1)
#for循环实现
list1=[]
for i in range(10):
    list1.append(i)
print(list1)

#列表推导式实现
list1=[i for i in range(10)]
print(list1)

#带if的列表推导式
# 需求：创建0-10的偶数列表
# 方法一：range()步长实现
list1=[i for i in range(0,10,2)]
print(list1)
#方法二：if实现
list1=[i for i in list1 if i%2==0]
print(list1)

#多个for循环实现列表推导式
#需求：创建列表如下：
#[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]

list2=[(i,j) for i in range(1,3) for j in range(0,3)]
print(list2)


#字典推导式
#例题：创建一个字典：字典key是1-5数字，value是这个数字的2次方
dict1={i:i**2 for i in range(1,5)}
print(dict1)

#将两个列表合并为一个字典
list3=['name','age','gender']
list4=['Tom',20,'man']
dict2={list3[i]:list4[i] for i in range(len(list3))}
print(dict2)

#提取字典中目标数据
counts={'MBP':268,'HP':125,'DELL':201,'Lenovo':199,'acer':99}
#需求：提取上述电脑数量大于等于200的字典数据
count1={key:value for key,value in counts.items() if value>=200}
print(count1)

#集合推导式
#需求：创建一个集合，数据为下方列表的2次方
list1=[1,1,2]
set1={i**2 for i in list1}
print(set1)
